createMember{
  return memberRepository.save(new Member(memberId));
}
findMember{
  return memberRepository.findByPropertyValue("memberId",memberId);
}
refer{
    org.springframework.data.neo4j.support.Neo4jTemplate.getReferenceNode
    Member refererMember=getOrCreateMember(referer);
    Member refereeMember=getOrCreateMember(referee);
    refererMember.refer(refereeMember);
    org.springframework.data.neo4j.support.Neo4jTemplate.save
    org.springframework.data.neo4j.support.Neo4jTemplate.getReferenceNode
}
lock{
  LockManager lockManager=graphDatabaseAPI.getLockManager();
  lockManager.getWriteLock(node);
}
unlock{
  try {
    LockManager lockManager=graphDatabaseAPI.getLockManager();
    lockManager.releaseWriteLock(node,graphDatabaseAPI.getTxManager().getTransaction());
 catch (  SystemException e) {
    throw new RuntimeException(e);
}
getOrCreateMember{
  Member member=memberRepository.findByPropertyValue("memberId",memberId);
  if (member == null) {
    member=memberRepository.save(new Member(memberId));
}
getOrCreateMemberWithoutUniqueIndexedMemberId{
  org.springframework.data.neo4j.support.Neo4jTemplate.getOrCreateNode
  org.springframework.data.neo4j.support.Neo4jTemplate.postEntityCreation
  org.springframework.data.neo4j.support.Neo4jTemplate.load
}
